
//3371.识别数组中的最大异常值、
class Solution {
public:
    int getLargestOutlier(vector<int>& nums) {
        int all=0;  //存储所有数据之和
        int n=nums.size();

        unordered_map<int,int> m; 
        for(auto e:nums) m[e]++,all+=e;
        int ret=INT_MIN;
        for(int i=0;i<n;i++)  //枚举右边的所有位置作为特殊数字的和
        {
            //all=nums[i]+异常值+特殊和(nums[i])
            int yc=all-2*nums[i];
            if(m.count(yc)&&(yc!=nums[i]||m[yc]>=2)) ret=max(ret,yc);
        }
        return ret;
    }
};